﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Inmobiliaria.Presenters.ViewInterfaces;
using System.Collections.Specialized;
using Inmobiliaria.Base;
using Inmobiliaria.UCControllers;
using Inmobiliaria.Core.Filtros;
using Inmobiliaria.Services.Core.DTO;


namespace Inmobiliaria.Presenters.WFPresenters
{
    public class ConsultarVentasPresenter : Presenter
    {
        private IViewConsultarVentas viewConsultarVentas;
        ConsultarVentasUC _ConsultarVenta = new ConsultarVentasUC();

        public ConsultarVentasPresenter(IViewConsultarVentas view)
            : base(view)
        {
            viewConsultarVentas = view;
            viewConsultarVentas.GetInmuebleWUC.Volver += new System.EventHandler(GetInmuebleWUC_Volver);
        }
        public override void InitView(NameValueCollection queryString)
        {
            viewConsultarVentas.TotalVisible = false;
            viewConsultarVentas.TipoInmueble = ConsultarVentasUC.CargarCombo();
            viewConsultarVentas.Provincias = ConsultarVentasUC.CargarComboProvincias();
            string[] Habitacion = ValoresConstantes.Numeros;
            viewConsultarVentas.Habitaciones = Habitacion;
            string[] Transaccion = ValoresConstantes.TipoTransaccion;
            viewConsultarVentas.Transacciones = Transaccion;
            string[] TipoVendedor = ValoresConstantes.TipoVendedor;
            viewConsultarVentas.TiposVendedores = TipoVendedor;
            ConfigEstado = estadosEnum.Consultando;
        }
        public void CargarComboLocalidades()
        {
            ConsultarVentasUC _ConsultarVenta = new ConsultarVentasUC();
            int id = viewConsultarVentas.Provincia;
            viewConsultarVentas.Localidades = _ConsultarVenta.CargarComboLocalidades(id);

        }
        public void CargarComboBarrio()
        {
            ConsultarVentasUC _ConsultarVenta = new ConsultarVentasUC();
            int id = viewConsultarVentas.Localidad;
            viewConsultarVentas.Barrios = _ConsultarVenta.CargarComboBarrios(id);
        }
        List<DtoListaInmueble> listaInmueble = new List<DtoListaInmueble>();
        public List<DtoListaInmueble> ListaInmueble
        {
            get { return listaInmueble; }
            set { listaInmueble = value; }
        }
        public void ConsultarInmueblesLista()
        {
            FiltroConsultaVenta filtro = new FiltroConsultaVenta();

            filtro.idInmueble = int.Parse(viewConsultarVentas.CodigoInmueble == "" ? "0" : viewConsultarVentas.CodigoInmueble);
            if (filtro.idInmueble > 0 & filtro.idInmueble != null)
            {
                ListaInmueble = _ConsultarVenta.ConsultarVentasInmueblesPorCodigo(filtro);
            }
            else
            {
                filtro.idTipoVendedor = viewConsultarVentas.TipoVendedor;
                filtro.idTransaccion = viewConsultarVentas.Transaccion == "" ? null : viewConsultarVentas.Transaccion;
                //if (viewConsultarVentas.tipoInmueble == )
                //{ 

                //}o esta 
                filtro.idInmueble = viewConsultarVentas.Inmueble;
                filtro.Dormitorios = viewConsultarVentas.Habitacion == "" ? null : viewConsultarVentas.Habitacion;
                filtro.idProvincia = viewConsultarVentas.IdProvincia;
                filtro.idLocalidad = viewConsultarVentas.IdLocalidad;
                filtro.idBarrio = viewConsultarVentas.IdBarrio;
                ListaInmueble = _ConsultarVenta.ConsultarVentasInmuebles(filtro);
            }
            if (ListaInmueble.Count > 0)
            {
                viewConsultarVentas.TotalVisible = true;
                viewConsultarVentas.ListarInmuebles = ListaInmueble;
            }
        }
        void GetInmuebleWUC_Volver(object sender, System.EventArgs e)
        {
            ConfigEstado = estadosEnum.Consultando;
        }
        DtoListaInmueble inmueble = new DtoListaInmueble();
        public DtoListaInmueble InmuebleVista
        {
            get { return inmueble; }
            private set { inmueble = value; }
        }
        public void VerInmueble(int idInmueble)
        {
            ConfigEstado = estadosEnum.Viendo;
            ConsultarVentasUC _ConsultarVenta = new ConsultarVentasUC();
            InmuebleVista = _ConsultarVenta.TraerInmueblePorId(idInmueble);
            if (InmuebleVista != null)
            {
                viewConsultarVentas.GetInmuebleWUC.ShowInmueble(InmuebleVista);
                // viewConsultarVentas.ImprimirInmueble = PermitirImprimirInmueble(InmuebleVista);
            }
        }
        public bool PermitirImprimirInmueble(DtoListaInmueble InmuebleVer)
        {
            bool ban = true;
            return ban;
        }
        public void VolverInmueble()
        {
            //_ui.LimpiarCampos();
            ConfigEstado = estadosEnum.Consultando;
        }
        private estadosEnum ConfigEstado
        {
            get
            {
                //return (estadosEnum)viewConsultarVentas[StateBagKeys.EstadoView];
                return ConfigEstado;
            }
            set
            {
                switch (value)
                {
                    case estadosEnum.Viendo:
                        viewConsultarVentas.FormularioVisible = true;
                        viewConsultarVentas.ConsultaVisible = false;
                        break;
                    case estadosEnum.Consultando:
                        viewConsultarVentas.FormularioVisible = false;
                        viewConsultarVentas.ConsultaVisible = true;
                        InmuebleVista = null;
                        break;
                }
            }
        }
    }
}
